/**

 * User: seeker910
 * Date: 13-10-24
 * Time: 下午10:16
 * @description 页面： 可以 在html中展示，也可以在PageContainer中展示  
 * */
Rsd.define('Rsd.container.Page', {
    extend: 'Rsd.container.Component',
    xtype: 'page',
    height:'100%',
    width:'100%', 
    style:{
        position:'relative',
        //display:'block',
        top:0,
        left:0,
        right:0,
        bottom:0
    },
    /**
     * @description 页面已准备好，可以执行load方法
     */
    isReady:true, 
    /**
    * @description 开发页面后自动加载数据
    * */
    //autoLoad:true,
    /**
    * @description 打开页面后判断数据是否已加载数据
    * */
    //isLoaded:false,
    /**
     * 
     * @description 当前页面的menu
     */
    //menu:null,
    /**
    * @description 页面标题， 用于tab页展示，不影响header内容。仅在被添加到TabPageContainer中有效
    *  
    //tabTitle: 'tabPage',
    /**
    * @description 添加到容器中后，置为选中状态。仅在被添加到TabPageContainer中有效
    *  */
    selected:false, 
    /*
    * */
    constructor: function Page(config) {
        config = config || {};
        this.apply(config);
    },
    /**
     * 
     */
    hide:function hide()
    {
        this.callParent();
         if(this.parent instanceof Rsd.container.TabPage)
         {
            this.selected = false;
         }
        
    },
    /*
    * 选中标签,仅在被添加到TabPageContainer中有效
    * */
    select:function select(speed)
    { 
        if(this.parent instanceof Rsd.container.TabPage)
        { 
            this.show(speed||0);
            this.selected = true;
            return this;
        }
        //console.trace("page select");
        console.error("也不是在Rsd.container.TabPageContainer容器中，select方法无效。");
        
    },
    /*
    * 展示页面，页面展示后自动加载数据。
    * */
    show:function show(speed){

        var _spees = arguments.length == 0?1000:speed;
        this.callParent(null,_spees);
        //console.trace("conatiner show:"+this.id);
        if(this.autoLoad && !this.isLoaded)
         {
             var me = this; 
             setTimeout(function () {
                 
                 if(me.isReady)
                 {
                    me.funApplyByIOC('load');
                    me.isLoaded = true;
                 } 
             },_spees);  
         }
        
        if(Rsd.Logger)
        {
            Rsd.Logger.pv(this.$className,this.tabTitle,this.data); 
        }
        return this;
    },
     
    /*
    * 加载页面数据
    * */
    load:function load(data,callback) {

        var _data = data || this.data||{};
        //Rsd.debug('Page ' +  this.id+ ' is load('+this.title+').'); 
        //加载数据 
        this.loadData(_data,callback);
        //send pv
        if(Rsd.Logger)
        {
            Rsd.Logger.send();
        } 
        return this;
    }

},function(type)
    {
        var _autoLoadGetter = function () {

            if (this.__autoLoad == undefined) {
                this.__autoLoad = true;
            }

            return this.__autoLoad;
        };
        var _autoLoadSetter = function (autoLoad) {

            this.__autoLoad = autoLoad;
        }

        this.defineProperty(type, "autoLoad", _autoLoadGetter, _autoLoadSetter, true);

        var _isLoadedGetter = function () {

            if (this.__isLoaded == undefined) {
                this.__isLoaded = false;
            }

            return this.__isLoaded;
        };
        var _isLoadedSetter = function (loaded) {

            this.__isLoaded = loaded;
        }

        this.defineProperty(type, "isLoaded", _isLoadedGetter, _isLoadedSetter, true);

        //menu
        var _menuGetter = function () {

            return this.__menu||{};
        };
        var _menuSetter = function (menu) {

            this.__menu = menu;
        }

        this.defineProperty(type, "menu", _menuGetter, _menuSetter, true);



    });

